10 DEF FNC(Z)=C-INT(4+(Z+(Z*RND(0)))/2)
20 PRINT "NUMBER";
30 LET F=0
40 INPUT A
50 LET A=A-RND(0)
60 IF A>0 THEN 50
70 DIM Z(6,4),P(2),W(13),D(3,6),E(3),R(50)
80 FOR A=0 TO 13
90 READ W(A)
100 IF A>6 THEN 150
110 FOR B=1 TO 3
120 READ Z(A,B),D(B,A)
130 NEXT B
140 READ Z(A,4)
150 NEXT A
160 PRINT "YOU RECEIVE";
170 LET X=1
180 GOSUB 3300
190 LET S=2-SGN(13-Q)
200 LET K=S
210 LET T1=120
220 LET U2=3
230 LET U=3
240 LET C=900
250 GOSUB 1940
260 LET F1=50
270 LET B=INT(F1+O*20*RND(0)+(1-O)*29*(2-RND(0)^7-RND(0)^(3-Z2)))
280 LET O=0
290 LET C=FNC(8)
300 LET L=0
310 IF B<=99 THEN 2040
320 PRINT "A  TOUCHBACK"
330 LET B=20
340 LET L=0
350 IF S=2 THEN 380
360 PRINT "MY ";
370 GO TO 390
380 PRINT "YOUR ";
390 GOSUB 2950
400 GOSUB 2670
410 LET D=1
420 LET F2=.06/2
430 LET O=0
440 IF C<=0 THEN 2460
450 GOSUB 2220
460 LET Z2=1
470 LET Z3=.3
480 IF C<=F*T1 THEN 2610
490 IF C<=0 THEN 2460
500 IF L=0 THEN 520
510 PRINT "^";
520 LET A=INT(C/60)
530 GOSUB 1610
540 LET A=C-60*A
550 PRINT ":";
560 GOSUB 1610
570 PRINT "  ";
580 GOSUB 3300
590 IF S=1 THEN 630
600 IF Q>8 THEN 570
610 LET M=Q
620 GO TO 650
630 LET Y=Q-8
640 IF (Q-10.5)^2>3 THEN 570
650 LET C=INT(C-L*(5+23*RND(X)))
660 LET L=1
670 IF M=7 THEN 1360
680 IF M=8 THEN 1510
690 IF RND(X)>Z(M,Y) THEN 870
700 LET A=2
710 GOSUB 2710
720 IF M<4 THEN 750
730 PRINT "PASS COMPLETE..";
740 GOSUB 1580
750 IF RND(X)<F2 THEN 2200
760 IF G>0 THEN 840
770 IF G=0 THEN 810
780 IF G+B<1 THEN 1860
790 PRINT "LOSS OF";-G;
800 GO TO 1220
810 PRINT "NO GAIN"
820 LET C=FNC(5)
830 GO TO 2790
840 IF B+G>99 THEN 1260
850 PRINT "GAIN OF";G;
860 GO TO 1220
870 IF M>3 THEN 910
880 LET A=1
890 GOSUB 2710
900 GO TO 760
910 LET H=.06
920 IF Y<>3 THEN 940
930 LET H=1.3/10
940 IF RND(X)<H THEN 1010
950 IF RND(0)<5/100+INT(Y/3.5)*2/10 THEN 1120
960 LET C=FNC(6)
970 PRINT "PASS INCOMPLETE"
980 LET L=0
990 LET G=0
1000 GO TO 2790
1010 PRINT "PASS **INTERCEPTED**";
1020 GOSUB 2710
1030 IF B<40 THEN 1050
1040 LET G=20*(1+SGN(G))
1050 LET B=100-B-G
1060 GOSUB 2930
1070 LET C=FNC(9)
1080 IF B<1 THEN 320
1090 IF B>99 THEN 1260
1100 PRINT "AT ";
1110 GO TO 2060
1120 LET G=-(5+INT(10*RND(X)))
1130 PRINT "THE QUARTERBACK ";
1140 IF RND(X)>.5 THEN 1170
1150 PRINT "IS THROWN FOR A ";
1160 GO TO 750
1170 LET G=-(2*G+8)
1180 LET M=5
1190 LET A=1
1200 PRINT "SCRAMBLES FOR A ";
1210 GO TO 750
1220 LET B=B+G
1230 PRINT "TO ";
1240 GOSUB 2960
1250 IF B<=99 THEN 1280
1260 GOSUB 1680
1270 GO TO 250
1280 IF B1>B THEN 2790
1290 IF B1<B THEN 1330
1300 PRINT "**MEASUREMENT**"
1310 GOSUB 3180
1320 IF RND(X)<.5 THEN 2790
1330 GOSUB 2670
1340 LET D=0
1350 GO TO 2790
1360 IF RND(X)<.06 THEN 1480
1370 LET B=B+30+INT(15*(1-RND(X)^3))
1380 LET C=FNC(2)
1390 IF B<=99 THEN 1440
1400 LET P1=3
1410 GOSUB 1720
1420 IF P1=0 THEN 320
1430 GO TO 250
1440 PRINT "THE KICK IS ";
1450 LET Z2=0
1460 GOSUB 2930
1470 GO TO 2040
1480 PRINT "**BLOCKED** RECOVERED..";
1490 LET G=-INT(14*RND(X))
1500 GO TO 1050
1510 PRINT "THE PUNT IS ";
1520 IF RND(X)<.06 THEN 1480
1530 LET F1=B
1540 LET Z2=1
1550 GOSUB 2930
1560 LET Z3=1.3/2
1570 GO TO 270
1580 IF RND(X)>24/100 THEN 1600
1590 LET L=0
1600 RETURN
1610 LET Q=INT(A/10)
1620 LET E(1)=48+Q
1630 LET E(2)=48+A-10*Q
1640 LET E(0)=2
1650 CHANGE E TO E$
1660 PRINT E$;
1670 RETURN
1680 PRINT "** TOUCHDOWN**"
1690 LET P1=1
1700 LET P(S)=P(S)+6
1710 LET B=130
1720 PRINT "THE KICK IS ";
1730 IF RND(X)<(B/132)^4 THEN 1760
1740 LET P1=0
1750 PRINT "NO ";
1760 PRINT "GOOD"
1770 LET P(S)=P(S)+P1
1780 GOSUB 1810
1790 GOSUB 2930
1800 RETURN
1810 PRINT "SCORE: ME";P(1);" YOU";P(2)
1820 LET L=0
1830 IF X<5 THEN 2700
1840 IF P(1)<>P(2) THEN 2460
1850 RETURN
1860 PRINT "**SAFETY**"
1870 LET P(3-S)=P(3-S)+2
1880 LET F1=30
1890 GOSUB 2930
1900 GOSUB 1810
1910 GOSUB 3100
1920 PRINT "FROM THE 20"
1930 GO TO 270
1940 GOSUB 3100
1950 IF S=2 THEN 2030
1960 IF S=2 THEN 2030
1970 PRINT "ON-SIDE";
1980 GOSUB 3300
1990 IF Q<>13 THEN 2030
2000 LET F2=.15
2010 LET Z2=1
2020 LET O=1
2030 RETURN
2040 LET B=100-B
2050 PRINT "RECEIVED AT ";
2060 GOSUB 2960
2070 IF Z2*RND(X)>Z3 THEN 2180
2080 IF RND(X)<F2 THEN 2190
2090 LET G=5+INT(100*RND(0))
2100 IF RND(0)<3*.06 THEN 2120
2110 LET G=INT(24*(1-RND(X)^2))
2120 LET B=B+G
2130 PRINT " AND RUN BACK...";
2140 LET L=1
2150 IF B>99 THEN 1260
2160 PRINT " TO ";
2170 GOSUB 2960
2180 IF RND(0)>F2 THEN 2900
2190 LET G=0
2200 PRINT "**FUMBLE**";
2210 GO TO 1050
2220 IF S=1 THEN 2250
2230 LET Y=INT(1+3.5*RND(0))
2240 RETURN
2250 LET M=INT(55*RND(0)/10.5)+1
2260 IF (B1-B)/(5-D)<3 THEN 2290
2270 LET M=INT(6-4*RND(0)^2)
2280 IF L*F*60>=C THEN 2360
2290 IF D<4 THEN 2700
2300 PRINT "I'LL ";
2310 IF B<55 THEN 2410
2320 IF 0<4*RND(0)-B1+B THEN 2440
2330 PRINT "TRY FOR A FIELD GOAL"
2340 LET M=7
2350 GO TO 2700
2360 IF P(2)*U2<=P(1)*U2 THEN 2290
2370 PRINT "TIME OUT"
2380 LET U2=U2-1
2390 GOSUB 3180
2400 GOSUB 2280
2410 PRINT "PUNT"
2420 LET M=8
2430 GO TO 2700
2440 PRINT "GO FOR IT"
2450 GO TO 2700
2460 IF X<4 THEN 2520
2470 IF P(1)=P(2) THEN 2520
2480 PRINT "THE GAME IS OVER"
2490 PRINT "FINAL ";
2500 GOSUB 1810
2510 GO TO 3390
2520 PRINT "END OF PERIOD";X
2530 GOSUB 1810
2540 LET F=1-F
2550 GOSUB 3180
2560 LET C=900
2570 LET X=X+1
2580 IF F<>0 THEN 420
2590 LET S=3-K
2600 GO TO 200
2610 IF T1=0 THEN 2460
2620 PRINT "2 MINUTE WARNING"
2630 GOSUB 3180
2640 LET T1=0
2650 LET C=120
2660 GO TO 490
2670 LET B1=B+10
2680 IF B1<=100 THEN 2700
2690 LET B1=100
2700 RETURN
2710 LET Q=1.3*(A*RND(0)-1)-.06
2720 LET A=2
2730 IF Q>=0 THEN 2760
2740 LET A=1
2750 LET Q=-Q
2760 LET G=D(A,M)+SIN(Q)*(D(3,M)-D(A,M))/(3.5*COS(Q))
2770 LET G=INT(G+INT(RND(0)+.02)*100*RND(0))
2780 RETURN
2790 LET D=D+1
2800 IF D=5 THEN 2880
2810 LET E(1)=48+D
2820 LET E(2)=INT(Z(0,D)/256)-128
2830 LET E(3)=Z(0,D)-256*INT(Z(0,D)/256)-128
2840 LET E(0)=3
2850 CHANGE E TO E$
2860 PRINT E$;" AND";B1-B;"  ";
2870 GO TO 420
2880 GOSUB 2930
2890 LET B=100-B
2900 IF S=2 THEN 380
2910 PRINT "MY ";
2920 GO TO 390
2930 LET S=3-S
2940 RETURN
2950 PRINT "BALL ON ";
2960 IF B=50 THEN 3060
2970 LET V=50-ABS(B-50)
2980 LET C=FNC(6)
2990 IF S=1 THEN 3080
3000 IF B<50 THEN 3030
3010 PRINT "MY ";
3020 GO TO 3040
3030 PRINT "YOUR ";
3040 PRINT V
3050 RETURN
3060 PRINT "THE 50"
3070 RETURN
3080 IF B<50 THEN 3010
3090 GO TO 3030
3100 IF S=2 THEN 3130
3110 PRINT "YOU";
3120 GO TO 3140
3130 PRINT "I";
3140 PRINT " KICK OFF."
3150 LET F2=.06
3160 LET Z2=0
3170 RETURN
3180 LET L=0
3190 FOR G=1 TO 100*20
3200 LET H=RND(H)
3210 NEXT G
3220 PRINT 
3230 PRINT 
3240 RETURN
3250 IF U=0 THEN 3290
3260 LET U=U-1
3270 GOSUB 3180
3280 GO TO 3300
3290 PRINT "..WRONG"
3300 LET A=A
3310 INPUT R$
3320 CHANGE R$ TO R
3330 LET A=(R(1)+128)*256+R(2)+128
3340 IF A=54473 THEN 3250
3350 FOR Q=1 TO 13
3360 IF A=W(Q) THEN 2700
3370 NEXT Q
3380 GO TO 3300
3390 DATA 0,54228,0,52932,0,53956,0,54472,53973,.5,-2,.25,4,.5,13,.55
3400 DATA 50386,.4,-2,.3,7,.65,15,.75,54231,.4,-2,.3,6,.6,15,.35,54211,.65
3410 DATA -2,.65,6,.6,17,.9,53441,.4,2,.7,10,.4,27,.2,49871,.1
3420 DATA 19,.4,35,.2,100,.10,50889,53461,52943,51407,51662,49868,55749
3430 END
